home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 4 / Precision Software Applications Silver Collection Volume 4 (1993).iso / stats / chadyn.exe / CASES.DOC < prev    next >
Text File  |  1988-12-11  |  61KB  |  1,162 lines

  1.  
  2. *   MM   for  repeating the Main Menu
  3. The  Main  Menu gives the equation,  or at least the name,  of the  process 
  4. being  studied,  and  it lists commands T,  XX,  and PM,  and a  number  of 
  5. submenus:
  6.  
  7. *   T     for  Trajectory
  8. This  command  tells the computer to plot the dots  of  a  trajectory,  the 
  9. number  being specified by command 'DOTS'.  Use command "COORD" to  specify 
  10. which  coordinates  will be plotted against which.  The coordinates of  the 
  11. vector  y[]  are  numbered  starting  at  0.  For  differential  equations, 
  12. typically one of the coordinates will be time.  While the usual mode is  to 
  13. plot one variable against another, there are other possibilities. 
  14.           Using  command "COORD" to set coordinates,  you can specify  that 
  15. you  want  one of the axes to be rho,  and then rho would be varied over  a 
  16. specified range using the XS or YS command, depending on whether rho was to 
  17. be  the horizontal or vertical variable.  You specify which using "C"  when 
  18. you  are  asked  for the numbers of the coordinates  to  be  plotted.  Then 
  19. specify the axis to be rho as being coordinate number -1.           Another 
  20. possibility  is to plot one coordinate against itself,  in which  case  the 
  21. current  value of the coordinate is plotted vertically while the horizontal 
  22. coordinate is the PREVIOUS value,  that is the value from the previous dot. 
  23. The command
  24.  
  25.           COORD -1 1<Enter>
  26.  
  27. says  rho should be plotted horizonally while coordinate 1 will be  plotted 
  28. vertically. You can hit <Enter> after COORD and the enter
  29. the rest of the line.
  30.           See also commands 'PH', 'FR', and 'RS'. 
  31.  
  32. **  RT    for  Restore+Trajectory
  33. A  number of commands have variants that start with the letter  'R',  which 
  34. means  that the screen should be restored with the old picture  before  the 
  35. procedure begins; currently this takes a few seconds.
  36.  
  37. *  MAPM   return to the Process Menu
  38. This  command allows selection of a different differential equation or map;  
  39. most parameters are reset to the default values.
  40.  
  41. *    XX    terminate the program 
  42. No data is saved automatically.
  43. *
  44.  
  45. *    AB      This command is used in conjunction with "IMAGES".  First  set 
  46. vectors ya and yb;  then this command draws the line between ya and yb  and 
  47. then stops if IMAGES = 0.  If images is positive, then the specified number 
  48. of  images  of the line will be drawn.  These images are  typically  curved 
  49. lines  with some parts stretched more than others,  so the routine has been 
  50. written in an adaptive way, that is the successive initial points along the 
  51. line chosen so that the image moves along with constant step size.
  52.  
  53. *   CIRCLE  Draw circle and possibly its image(s).
  54. This  command  draws a circle and a number of images of  that  circle.  The 
  55. radius  is set using command  RA and the number of images can be set  using 
  56. command IMAGES or can be set interactively using interrupt 'I' to  increase 
  57. the number of images by 1 or 'i' to set the number of images equal to 0. If 
  58. it  is 0,  then just the circle is drawn.  This command is useful in  basin 
  59. routines  for determining if the circle with a specified center and  radius 
  60. is  actually in the basin of attraction,  though of course y1 must be moved 
  61. to the center.
  62.  
  63. *    CONT Dot count and picture will be CONTinued
  64. This command is used to indicate that when a trajectory is plotted, the dot 
  65. number  should CONTinue from the current value,  assuming it is  less  than 
  66. "dots".  This  command is particularly useful in continuing the computation 
  67. of a basin boundary, since if this command is not invoked, even the command 
  68. "RBL",  i.e.,  "restore  the picture and compute the basin boundary in  low 
  69. resolution"  will result in the computation beginning anew from  the  upper 
  70. left  of  the  picture.  Often two commands such as "CONT" and "T"  can  be 
  71. enterred  on  one line,  though this feature has not been  checked  out  in 
  72. detail,  and  it  has  been assumed that the user will hit  <return>  after 
  73. command.
  74.  
  75. *  DB (alias "BOX")   for  DrawBox      
  76. Entering DB changes the variable 'box' back and forth between 0 and  1.  If 
  77. it is set to 1,  a box will be drawn whenever the screen is cleared. If you 
  78. want  a  box  to be drawn just once,  it  is preferable to  hit  'b'  while 
  79. plotting. Note that the box that gets drawn is initially the box around the 
  80. edge of the screen,  but this can be changed while plotting using the arrow 
  81. keys and then x and/or X and/or y and/or Y: 
  82.  
  83.  x changes the LEFT edge of the box wherever the little cross is; 
  84.  y changes the BOTTOM edge of the box wherever the little cross is; 
  85.  X changes the RIGHT edge of the box wherever the little cross is; 
  86.  Y changes the TOP edge of the box wherever the little cross is.
  87.  
  88. *    INC     Interrupts +/- are designed to change the variable rho by  the 
  89. amount "RS".  This command allows you to change the parameter;  it is still 
  90. changed "RS".  Inc allows you alternatively change the parameters  C1,  C2, 
  91. ....  This command will be expanded in use in the future so that each place 
  92. that  uses  rho  as  a  special variable will  allow  any  variable  to  be 
  93. specified.
  94.  
  95. *  V invert henon or Ordinary differential equations   
  96. The  inverse of maps is needed for computing stable manifolds and is  often 
  97. useful  to see where points came from.  The program currently allows you to 
  98. invert only the Henon map and any differential equation. In particular, the 
  99. Henon  map  is  invertible  its inverse is  a  Henon  map  (with  different 
  100. parameters  and  a  different scaling of the X and Y coordinates)  and  the 
  101. inverse can automatically be obtained using this command.  If a picture  is 
  102. printed or if data is saved on a disk, the numbers will correspond to those 
  103. of the inverted process. Interrupt 'v' has the same effect as this command.
  104. **
  105. Example:  If you are plotting a trajectory of the Henon map and you wish to 
  106. find where some point came from, that is, what the inverse of the henon map 
  107. is  for that point,  then hit 'p' to pause the program,  and move the small 
  108. cross  to  the point in question.  Hit 'i' to move the large cross  to  the 
  109. position of the small cross.  Invert the system by either hitting 'v' or by 
  110. entering command "V" (by hitting ':' and then v<Enter>.  Now hit 'p', which 
  111. makes  the inverted map take one step,  and the new point will be shown  by 
  112. the  position of the large cross.  Hitting 'p' again shows you  where  that 
  113. point came from.  Do not forget to invert the system again to return to the 
  114. normal mode of operation. Hitting <Esc> resumes plotting.
  115.  
  116. *   K      for interrupt 'k'
  117. This  command is a toggle;  it causes a cross to be drawn at each dot as it 
  118. is plotted.
  119.  
  120. *   PAUSE
  121. This command is a toggle;  if it is on,  the process will be in pause  mode 
  122. when plotting commences.
  123.  
  124. *  PH    for  PrinterHead      
  125. Printer  ribbons  usually aren't very dark unless they're very new,  but  a 
  126. dark printed picture can none-the-less be gotten by
  127.  
  128.                 PH <return>        
  129.                 3 <return>
  130.  
  131. which causes the Printer Head to strike each line 3 times.  The default  is 
  132. 0.  If  it  is set to a positive value,  then when the picture is  finished 
  133. (i.e.,  when the number of dot plots or attempted plots reaches 'DOTS', the 
  134. picture  will be automatically printed.  If your printer is  not  graphics-
  135. compatible with the EPSON MX-80, the computer may crash and will have to be 
  136. rebooted. (No harm in that.)
  137.  
  138. *   PS    for  PrintScreen    
  139. This  command prints a high resolution copy of the picture that was on  the 
  140. screen;  this  works  only  if  you have an  appropriate  printer  that  is 
  141. compatible  FOR  GRAPHICS  with the IBM Graphics printer or  other  similar 
  142. Epson printers.
  143.  
  144.     If  you do not have an appropriate printer,  trying to print  might 
  145. crash the system.  Whether it does depends on the system.  In such a  case, 
  146. you lose the data in the program.  You can first save your data (the values 
  147. of the vectors and parameters) using commands 'DD' and 'TD'.
  148.  
  149. *  PT    for  PrintText
  150. This command determines the amount of text to be printed;  this can also be 
  151. changed while the program is plotting; 
  152.      Settings: 0 means no header for pictures; 
  153.       1 is small header; 
  154.       >= 2 means  substantial output both to printer when printing 
  155.           a picture and also data appearing on the screen;
  156.       3 continuous scrn printing of lyap exps and dif.eqn.error 
  157.           if computed; this level produces occasionally annoying
  158.           amounts of information, and may greatly slow down 
  159.           computation due to the excessive ammounts printed;
  160.       4 print current state vector y[] on printer once, then 
  161.           resets to 3
  162.       5 constantly prints current y[] on printer; hit 2 to reset
  163.  
  164. *  RUNTIME   sets the total runtime for process; it does not work for basin 
  165. boundaries.  
  166.  
  167. *   TDTIME  causes the program to save the current picture and data in  the 
  168. file  whose name is specified using command "DN" and this saving of partial 
  169. results  occurs  every  TDTIME  minutes.   Since  the  same  file  is  used 
  170. repeatedly,  old results are wiped out.  This is designed for routines that 
  171. take a long time to run and you want to be sure your results are not lost.
  172.  
  173. *  TIC   causes the program to draw tic marks each time a box is drawn  and 
  174. TIC2 causes a second fine set of tic marks to be drawn.
  175.  
  176. *  TIME  prints time of the day.
  177.  
  178. *
  179.  
  180. *   SIGMA   for changing the constant sigma
  181. sigma is the Prandtl number in the Lorenz system.
  182.  
  183. *   BETA   for changing the constant sigma
  184.  
  185. *   C1    for changing the value of C1 
  186. *   C2    for changing the value of C2 
  187. *   C3    for changing the value of C3 
  188. *   C4    for changing the value of C4 
  189. *   C5    for changing the value of C5 
  190. *   C6    for changing the value of C6 
  191. *   C7    for changing the value of C7 
  192. *   C8    for changing the value of C8
  193.  
  194. *   RHO     for changing the value of rho
  195.  
  196. This command is for setting the special value rho.  It can be changed while 
  197. plotting  by hitting the + or - keys.  The amount of change  is  determined 
  198. initially by command RS. The default change in rho is typically 1.
  199.  
  200.     Furthermore  the program can be told to make a series of  pictures, 
  201. and after each the value of rho is incremented by amount rhostep (set using 
  202. the command RS),  provided the command FR is used to set the Final Rho to a 
  203. value  other  than the current rho.  If 'preiterates' is > 0,  the  initial 
  204. value will be reinitialized to y1[] for each picture.
  205.  
  206.         See  also command "COORDS",  below in this section,  to see how  to 
  207. make  "bifurcation  diagrams"  in  which  rho  is  varied  as  one  of  the 
  208. coordinates. See also section 4.12.
  209.  
  210. **   RS    for  RhoStep 
  211. This changes rhostep, the amount that rho is changed by when hitting + or - 
  212. while the program is running; see also commands R and FR.
  213.  
  214.  
  215.     The  simplest use of command 'RS' is for changing rho using  the  + 
  216. and  - keys while the computer is plotted.  While plotting,  this step size 
  217. can be changed without returning to the menu by using either the "home" key 
  218. on  the numeric key pad (to cut in half the amount that rho changes by)  or 
  219. the "Pg Up" key to double the step size. The change is rho can also be used 
  220. for automatically making a series of pictures with regularly increasing (or 
  221. decreasing) steps in rho. Command 'FR' in the 'P' menu lets you specify the 
  222. final value of rho. 
  223.  
  224. *    PI     for  setting the number of pre-iterates    The number  of  pre-
  225. iterates PI should be >= 0.  The usual default is 0.  The program  computes 
  226. this  many points for attempted plotting before plotting begins.  See  also 
  227. 'R'.
  228.  
  229. *   DOTS total number of dots  
  230. This  is  the total number of dots that will be used in making  a  picture, 
  231. including  attempts  to plot dots that are off screen;  the  loop  variable 
  232. 'dot'  that  runs  to 'dots' is reset to zero WHILE PLOTTING  whenever  the 
  233. trajectory vector is moved by using either 'i' or when y[] is changed using 
  234. the command the key 'm'.  In particular the interrupt m00 (i.e.,  while  in 
  235. the  graphics screen hitting 'm',  then'0',  then '0') is a dumby move that 
  236. resets the counter without an actual move.
  237.  
  238.     A  basic  concept  in  the program is  the  amount  of  computation 
  239. required  for  calculating one point for plotting.  Hence you  specify  the 
  240. total number of dots to be plotted.  If some turn out to outside the  range 
  241. of the screen, they still count in the total. The basic "do-loop" uses dots 
  242. as a counter. Command 'PI' lets you specify the number of preiterates, that 
  243. is,  the  number of dots computed before the plotting begins.  The  do-loop 
  244. begins  at -preiterates and actually only begins plotting when the  counter 
  245. reaches  0.  This  is useful for getting pictures of chaotic attractors  in 
  246. cases  where  you  want to give the trajectory time to relax  down  to  the 
  247. attractor. Command 'DOTS' gives the upper end of the loop.
  248.  
  249.     The  process can be set to plot every Runge-Kutta  step.  For  some 
  250. differential equations,  one dot might correspond in this terminology to 25 
  251. or 50 Runge-Kutta time steps,  say for a total time of 2 pi.  That might be 
  252. the case where the system has periodic forcing with that period.
  253.  
  254.  
  255. *   IPP   for  Iterates Per Plot (typically the value is one) 
  256. This  command is particularly useful for obtaining the time-two-pi map from 
  257. a  differential equation that is forced periodically.  If 'SPC' in  the  DE 
  258. menu  is set to say 25,  then setting IPP to 25 will mean that one point is 
  259. plotted every cycle.
  260.  
  261.           This command can also be useful for studying maps even if they do 
  262. not come from differential equations.  If you want to examine the  behavior 
  263. of  a period 5 point of the Henon map,  you may find it convenient to  look 
  264. only at every fifth iterate.
  265.  
  266. *   XS    for  XScale   
  267. This  command  allows  you to change the scale of the screen  for  plotting 
  268. dots;  the first number is the left hand side and the second is the  right. 
  269. You  must  enter  both with a space but no comma between  them.  The  first 
  270. number  can  be  larger than the second if you  want  a  decreasing  scale. 
  271. Example:
  272.  
  273.                XS<Enter>
  274.                -3.5 5.<Enter>
  275.  
  276. *   YS    for  YScale   
  277. This command allows you to change the scale of the screen. The first number 
  278. is  the  coordinate of the bottom of the screen and the second is the  top.  
  279. You  must  enter both with a space but no comma  between  them.  The  first 
  280. number can be larger than the second if you want a decreasing scale.
  281.  
  282. *   L      for  Lyapunov  
  283. This  command is for changing the number of Lyapunov exponents computed  by 
  284. the  program.  Lyapunov exponents can be computed for most of the processes 
  285. including the Lorenz system ('L') and the Henon map ('H').  Such additional 
  286. computations  are  time  consuming and the  computer  slows  substantially. 
  287. Computing  all three exponents for the Lorenz system entails solving  a  12 
  288. dimensional  system,  (not  counting time,  which is an extra variable)  so 
  289. these computations have been made optional. Typing
  290.  
  291.                 L <return>
  292.  
  293. gives  a prompt asking for the desired number of exponents to be  computed. 
  294. This  number of exponents to be computed is initially 0.   If you  want  to 
  295. compute lyapunov exponents but 'L' doesn't appear on the Main Menu,  then I 
  296. have  not  gotten  around  to setting up the extra  computations  that  are 
  297. needed.  The more exponents you compute,  the slower it runs. Expect to let 
  298. it  run  quite  a  while.  As mentioned  above,  the  Lorenz  system  is  4 
  299. dimensional including time,  but when computing one Lyapunov exponent,  y[] 
  300. is  7  dimensional,  that  is a seven dimensional  system  of  differential 
  301. equations.  This  becomes  10 or 13 dimensional when 2 or 3  exponents  are 
  302. being computed.  When they are being computed, the current best estimate of 
  303. those  exponents  is printed on the screen each iterate.  It takes quite  a 
  304. while  (hours  for  Lorenz) to get moderately  good  convergence  of  these 
  305. exponents. See also interrupt 'L'.
  306.  
  307. WARNING:
  308. **
  309.  
  310. What  REALLY  slows the computer is printing the Lyapunov  exponents  every 
  311. iterate.  To  avoid the large amount of printing,  hit '2' once the program 
  312. starts plotting. To get the program to report the current values, hit '3'.
  313.  
  314. *   COORDS      for  Coordinates     
  315. This command is for setting the coordinates to be plotted. See also command 
  316. T.  Considerable  detail  is printed out when you enter  "COORDS".  For  an 
  317. example,  the  Lorenz  equations  variables have  four  variables  in  this 
  318. implementation and they are numbered as follows: 
  319.  
  320.                 x is 0; y is 1; z is 2; time is 3.  
  321.  
  322. And  in  the initial setting the program plots variables  0  (horizontally) 
  323. against 2 (vertically).  
  324.  
  325.     This  command  will  not appear for 2 dimensional  systems  because 
  326. there are only 2 coordinates;  none-the-less if you wish to switch which is 
  327. vertical  and  which is horizontal,  you can do it even though  it  is  not 
  328. displayed.
  329.  
  330.         There are two tricks that are available with this command:
  331. **
  332.     A: Delayed coordinate.  You can set the two coordinates to have the 
  333. same value,  for example by saying both coordinates are number 0. If you do 
  334. that,  then  instead  of  plotting points along the diagonal as  you  would 
  335. expect,  it plots vertically the specified coordinate of the trajectory but 
  336. horizontally it plots that coordinate from the previous time.  That is, the 
  337. vertical coordinate is delayed.  To delay it several time steps, use IPP to 
  338. change the number of iterates per plot.
  339. **
  340.         B:  Bifurcation Diagrams.  See also the Section 4.12 on bifurcation 
  341. diagrams. If you specify that one of your two coordinates is # -1, then the 
  342. program plots rho for that coordinate.  While ordinarily rho is a constant, 
  343. now it is varied. If you specify for example that the horizontal coordinate 
  344. number is  -1,  you will probably want to initialize rho at the left  value 
  345. "X_lower", and as it iterates the map and plots dots, it will increment rho 
  346. until  it reaches the value on the right side "X_upper".  It will increment 
  347. rho  through a series of 960 different values,  distributing the  total  of 
  348. "DOTS"  between.  To plot rho horizontally and x vertically for a total  of 
  349. 96000 dots for the Henon map,  that is 100 dots for each rho value, then do 
  350. the  following when when the program is in the main menu for the Henon map. 
  351. Enter the following. 
  352. **
  353.                  COORDS<return> (you will choose coordinates)
  354.                  -1 0<return> (choose coordinate numbers -1 and 0)
  355.                  XS<return>  (X  scale;  the  Y scale  is  already  set  to 
  356. reasonable default values, -2,2 so we set the X axis to run from 1 to 1.4)
  357.                  1 1.4<return>
  358.                  RHO<return> (initialize rho to the value:)
  359.                  1.<return>
  360.                  DOTS<return>
  361.                  96000<return> (use no commas in writing 96000)
  362.                  T<return>  (begin plotting;  rho will be initialized to be 
  363. 1)
  364. **
  365.         The  above  method assumes the number of  pre-iterates  is  0,  the 
  366. default  value.  Better  pictures  are  often produced if it is  set  to  a 
  367. positive value.  Then the program will then initialize y[] at the beginning 
  368. of each rho value and the first "PI" of the iterates of each rho value will 
  369. not be plotted. Notice in the above example there are only 100 iterates per 
  370. rho  value  so if "PI" was set larger than 100,  nothing at  all  would  be 
  371. plotted. When "PI" is positive, rho will automatically be initialized. 
  372.  
  373. *  FR    for  FinalRho     
  374. The  program  can  make a series of pictures using  consecutive  values  of 
  375. "rho".  First  set  the  desired  number of dots for  each  picture  (using 
  376. "DOTS"), say 50000.  If you want pictures of the Lorenz attractor for rho = 
  377. 28.,  30.,  ..., 50., then enter RS to change "RhoStep" and set it to be 2. 
  378. Next  it  is  necessary  to set "rho_final" (using item  'FR'  in  the  'P' 
  379. (sub)menu) at 50:
  380.                
  381.                 DOTS <return>
  382.                 50000 <return>
  383.                 RS <return>
  384.                 2. <return>
  385.                 FR <return>
  386.                 50. <return>
  387.                 T <return>
  388.  
  389. Then  go  away  and come back a couple hours later and you  should  have  a 
  390. series of pictures -- 
  391.  
  392. *  ALL  for plotting in all active small windows   
  393. If  more than one small window has been opened for plotting,  then  command 
  394. "all"  causes  all the small windows to  be  plotted  simultaneously.  This 
  395. capability is turned off by entering the command again or by hitting one of 
  396. the function keys that tell the computer to go to a specific window.
  397.  
  398. *  SD    for  ScreenDiameter  
  399. A  point that goes "far" from the screen will be assumed to be "diverging", 
  400. and is likely to be on route to infinity. So how far is far?  'SD' lets you 
  401. set a parameter  "diameters",  with default now = 4.0.  If for example  the 
  402. point leaves the screen and goes more than 'diameters' widths of the screen 
  403. left  or  right  of  the  screen,  or goes above or  below  the  screen  by 
  404. 'diameters' times the height of the screen,  we say the trajectory is going 
  405. to infinity.  When such an event occurs,  the program is paused, and can be 
  406. restarted by hitting escape,  though the trajectory should be reinitialized 
  407. first,  for example by using the arrow keys and then hitting 'i'.  You  can 
  408. turn this feature off in which the program pauses by setting diameters to a 
  409. negative number.
  410.  
  411.         This  diameter  is  also used by the basin  boundary  and  straddle 
  412. trajectory  routines  to determine if the trajectory is diverging.  If  you 
  413. want to specify that the trajectory has exited as soon as the box has  been 
  414. left, set diameters to 0. 
  415. **     When you rescale the screen while plotting using 's',  the program 
  416. automatically  rescales  diameters,  increasing it accordingly if  you  are 
  417. blowing up a small section of the screen.  Each window has its own value of 
  418. diameters.
  419.  
  420. *  SS    for  ScreenSectors  - specify the active window
  421. This command is for specifying the active window.  The screen screen can be 
  422. split up into four windows that are quadrants, and the entire screen can be 
  423. a window (the default case, window number 0). You designate the quadrant or 
  424. sector by entering 1,  2,  3,  or 4 (or 0 for full screen). The sectors are 
  425. arranged as
  426.  
  427.         1  2
  428.         3  4             and 0 for the entire screen
  429.  
  430.  
  431. The reason for this enumeration is due to the fact that you can change  the 
  432. working sector using keys F1,  F2,  F3,  F4, (and F10 for returning to full 
  433. screen plotting since there is no F0 key). On some computers those keys are 
  434. arranged in the pattern
  435.  
  436.         F1 F2
  437.         F3 F4
  438.  
  439. For an example of how to use these, suppose you were plotting an attractor, 
  440. and  you want to plot the attractor in sector 1 and successive blow ups  in 
  441. other sectors. Proceed as follows:
  442. **
  443.  
  444. Hit  F1 (or from the main menu enter SS and enter 1).  Hit 'c' to clear the 
  445. window. (Caution: 'C' clears the entire screen, not just the sector you are 
  446. working on.) The attractor will continue to plot, reduced in size. Move the 
  447. small cross around using the arrow keys.  Use the keys x,y,X,Y to store the 
  448. desired box coordinates (the region you want to blow up runs from x  (left) 
  449. to  X (right) horizontally and y (bottom) to Y vertially.  These keys store 
  450. the relevant coordinate of the small cross. Hit 
  451.  
  452.         'p' (pause after one dot mode)
  453.         's' (declares that you want to create a window 
  454. in  some quadrant of the screen -or in the entire screen- and its scale  is 
  455. chosen so that it will be the region enclosed by the box)
  456.         'F2'  (says the window should be the upper right quadrant)
  457.         'Esc' to return to plotting 
  458.  
  459. If  you  had wanted the region in the box to fill the  entire  screen,  you 
  460. should have hit
  461.  
  462.                 'F10'
  463.  
  464. When creating a window using 's',  the region of the new window is  erased. 
  465. There  is no way to move a current picture in a box to a window whether new 
  466. or old. You must recompute the picture.
  467. *
  468.  
  469. *   NM     for  Newton method (sub)menu 
  470. Newton's method is used for finding periodic orbits. 
  471.  
  472.         Newton's method is described in the text obtained by entering 'NM'. 
  473.  
  474.     The Newton method can be used for finding periodic orbits.  If  you 
  475. want  a  period p orbit,  then the Newton method is set up to minimize  the 
  476. difference between the initial condition y1[] and the p th iterate of  that 
  477. point.  The  program puts the hopefully better estimate of a periodic orbit 
  478. in both y[] and y1[].
  479.  
  480. **    An upgraded version of that is also available and it is called  the 
  481. Quasi-Newton method. It uses the Newton routine and calculates the step the 
  482. Newton  method  recommends.  Sometimes the Newton step gives a new  initial 
  483. point which is worse than the old initial condition, that is, the "error" ( 
  484. =  the  distance  between  the  initial point and  its  p  th  iterate)  is 
  485. increased.   This  can  occur  because  the  Newton  method  is  based   on 
  486. linearization techniques and the processes are nonlinear. The Newton Method 
  487. recommends a step,  that is a change in the initial point. If the error for 
  488. the  new  position is greater than the error before the  step,  the  Quasi-
  489. Newton  Method  tries  a step in the recommended direction but  smaller  in 
  490. size.  Iterating  the quasi-Newton method will result in convergence  to  a 
  491. LOCAL  minimum  of the error.  If that's not 0,  too bad.  Try a  different 
  492. starting point for the method. Using the quasi-Newton method is essentially 
  493. always preferrable to using the plain Newton.  If a smaller step is needed, 
  494. it  will  say so on the computer screen,  so you will know if  the  program 
  495. deviates form the Newton step.
  496.  
  497. **  NP    for  NewtonPeriod     
  498. If you want to find an orbit with period 3,  then use NP to set the  period 
  499. to  3.  The Newton Method (when implemented successively several times) may 
  500. then find an orbit of period 3 or of period 1 (which counts as an orbit  of 
  501. period 3) or it may fail completely;  The period really means the number of 
  502. plotted dots; thus if you are iterating a differential equation and you are 
  503. plotting  every Runge-Kutta step,  and the forcing period is say equivalent 
  504. to the time it takes for 30 Runge-Kutta steps, then the period should be 30 
  505. or  60;  if you are plotting only once every period as is usually the  case 
  506. with a map, then period 3 would mean 3 periods.
  507.  
  508.  
  509. **   Nx     for  applying the Newton method x times The  Newton  method  is 
  510. applied consecutively where x can be 1 or 2 or ... 9, for example N5. 
  511.  
  512. **  Q1    for  applying the Quasi-Newton method once.
  513.  
  514. **  Qx    for x  Quasi-Newton  iterates; x can be 1 or 2 or ... 9.
  515.  
  516.           The  Quasi-Newton  method  is a variant of the Newton  method  in 
  517. which  it is guaranteed that after the quasi-Newton step the new  point  is 
  518. not  farther  from being a periodic orbit than was the  initial  point.  It 
  519. starts out by taking a Newton step.  If that makes the situation worse,  it 
  520. takes  only  half the recommended step and continues cutting until it  does 
  521. yield an improvement. See the discussion under N.
  522.  
  523. *
  524. *   YM    lists some of the vectors
  525.      Some of the (storage) vectors have special purposes:
  526.           y1[]  is for initialization vector that y[] is set equal to  when 
  527. hitting 'i' while plotting a trajectory,  and is where the small cross  is. 
  528. It is the point that the Newton method takes as its initial point.
  529.       y2[],  y3[],  y4[]  are  used in the basin routines (see   B)  to 
  530. designate points of an attractor whose basin points will be plotted;
  531.       y5[],  y6[],  y7[]  are  used in the basin routines to  designate 
  532. points of an attractor whose basin points will NOT be plotted;
  533.       ya[],  yb[]  denote two ends of line to be used in  the  straddle 
  534. orbit calculations; see commands 'BST' and 'SST'.
  535.  
  536.     Any of the vectors can be used to save temporary data;
  537.  
  538. *   I  for initializing y
  539. This  command  changes y[] to equal the initialization vector y1[]  and  is 
  540. equivalent to interrupt 'i'.
  541.  
  542. *   M     for  Move Vector    
  543. This  command  is  for moving one vector to the location  of  another;  for 
  544. example 
  545.         M <RETURN> 0 <RETURN> 1 <RETURN> 
  546. moves  vector  y0[]  to  the location of  y1[];  that  is  it  changes  the 
  547. coordinates  stored in vector y0[];  if you move a vector,  its coordinates 
  548. will  change,  so in this case the y[] will be move to wherever the  little 
  549. cross is (i.e., y1[]). This command is similar to interrupt 'm'.
  550.  
  551. *  SV    for  SetVector  
  552. This command is  for setting the coordinates of a vector to desired values.
  553.  
  554. *  Yx     where x = 0,1,...,9, or a,...,e.
  555. This  command is for listing the coordinate values of the  storage  vectors 
  556. y0[],...,ye[].
  557. *
  558.  
  559.  
  560. *DM
  561.           Pictures can be stored on disk with all current parameter values. 
  562. The file name must be permissable by the operating system. MS-DOS allows up 
  563. to  8  letters,  then  a period followed by up to 3 letters.  This  can  be 
  564. preceded by a letter for the disk drive with a colon, such as 
  565.  
  566.         A:PICTURE1.PIC
  567.  
  568. The picture that is stored is the high resolution copy,  not a copy of  the 
  569. screen. Current resolution is 960 dots horizontally by 544 vertically. 
  570.  
  571.         Substitute  for  "A:"  above the appropriate  disk  drive.  If  the 
  572. picture is in the current disk drive,  no drive designation is necessary so 
  573. you would have:
  574.  
  575.                PICTURE1.PIC
  576.  
  577.     You  can  also  store just the data and parameters in a  file  with 
  578. practically the same name,  the same file name except that after the period 
  579. the program automatically inserts DD, that is, in the above case
  580.  
  581.         A:PICTURE1.DD
  582.  
  583.           If  you are going to create disk files to save data  or  pictures 
  584. that  you have spent time creating,  then make sure you have disk space  to 
  585. save it. Before saving data with the Dynamics command "DD" or "TD" (meaning 
  586. "Data Dump" and "To Disk",  more about these below),  be sure to have space 
  587. available.  In  the above case you could substitute a formatted floppy  for 
  588. the  DYNAMICS  disk  in  the "A" drive before invoking  the  "DD"  or  "TD" 
  589. commands.
  590. *
  591. COMMANDS:
  592.  
  593. **  DN    for  DiskName       
  594. If  you  store a picture on the disk or to retreive it from the  disk,  you 
  595. have to specify the file name.  DN is for changing the Disk file's Name for 
  596. the next picture to be stored.  The operating system's rules are:  up to  8 
  597. characters followed by a period followed by up to three characters. You can 
  598. preceed the name by the disk designation, so you might use a name like
  599.  
  600.           A:henon1.pic
  601.  
  602. Be  sure  to use a disk with enough vacant space (70KBytes).  Another  file 
  603. name will also be created, namely the same file name except ending in '.DD' 
  604. These files are not actually created unless you use the commands  'TD'  (or 
  605. 'TDWP') and 'DD' respectively.
  606.  
  607.  
  608. *  TD    for  ToDisk     
  609. Entering  this  command  copies the previous or current picture To  a  Disk 
  610. file.  The  picture  also remains in the program.  The disk  file  includes 
  611. almost  all  current  values of the parameters.  The  space  needed  varies 
  612. depending  on the number of parameters and vectors to be saved but you  can 
  613. estimate  70  KBytes.   If there is insufficient space  on  the  disk,  the 
  614. program will probably crash.  If a file with that name already exists,  the 
  615. program will write over the old file,  destroying the old one.  The file is 
  616. mixed binary and ascii, with all current values of the parameters in ascii; 
  617. the  ascii part will be difficult to change using an editor because of  the 
  618. binary part of the file; so edit only files created with the command DD.
  619.  
  620. **  TDWP  for  To Disk When Printing (not in menu)
  621. This command sends the current picture to the disk each time the picture is 
  622. printed;  entering  this command does not by itself transmit the picture to 
  623. the   disk.   Turn   this   off  using  command   TDWP   again,   that   is 
  624. ToDiskWhenPrinting  is a toggle.  It has been omitted from the menu due  to 
  625. infrequent use.
  626.  
  627. **  FD    for  FromDisk
  628. This command uses the file named in the disk menu, e.g. L.PIC. If a picture 
  629. has been stored in using that file name,  "FD"  makes the program read  the 
  630. picture from the disk  into core memory.To use the picture, enter a command 
  631. beginning with R (for Restore picture) such as RT (to plot a trajectory) or 
  632. RBL (to plot a basin of attraction) or CONT. The command CONT is equivalent 
  633. to  putting 'R' in front of the next trajectory or basin boundary  command, 
  634. except  that CONT leaves the dot number unchanged,  not resetting it to  0. 
  635. Invoking FD does not change any parameters of the current process.
  636.  
  637. **  AFD   for  AddFromDisk
  638. This command adds the picture from Disk file into core picture, so that the 
  639. two pictures are overlaid;  follow with RT or RBL to use it.  The disk file 
  640. copy remains on the disk unaltered. If the file does not exist, the program 
  641. may  crash.  When the dots of that file are added to the screen,  they  are 
  642. added  using the current color (for those with color screen).  This enables 
  643. you to create a number of files with different parts of a picture,  and the 
  644. add  them together,  using DN to set the name  and using the interrupts  to 
  645. set the new color, before each call to AFD. 
  646.  
  647.  
  648.  
  649. *  DD    for  Dump Data
  650. This command creates an ascii file that contains the Process name +  values 
  651. of most constants and vectors.  The file is just like the one created using 
  652. TD except the picture is not saved.  If a file by that name already exists, 
  653. it is deleted and replaced by the new one.  To use such a file, you must be 
  654. in DOS. Ordinarily you would start the program with the command
  655.  
  656.         DYNAMICS<Enter>
  657.  
  658. Now  if  you have created a data dump file named LORENZ.DD (or you use  the 
  659. file by that name that comes with the distribution disk,  you can start the 
  660. program from DOS using the DOS line 
  661.  
  662.         DYNAMICS LORENZ.DD<Enter>
  663.  
  664. This resets the parameters and vectors to their previous value according to 
  665. the values in the file. The picture is NOT contained in this file. See also 
  666. 'DN' and 'FD'.
  667. **
  668.           A  file  of  commands  can be created using  an  editor  or  word 
  669. processor or it can be done automatically using command DD mentioned above. 
  670. LORENZ.DD which is for the Lorenz differential equations.  It causes one of 
  671. the  variables,  x(t),  to be plotted vertically against time  horizontally 
  672. (instead  of  the default for the Lorenz  map:  x(t)  horizontally  against 
  673. z(t)).   This  requires resetting a number of parameters.   You can see all 
  674. these settings by typing
  675.  
  676.                 filename <return>
  677.  
  678. or  viewing the file with an editor before running the program,   that  is, 
  679. when  you have the DOS prompt.  On the other hand they can  be  implemented 
  680. very easily: when starting the program type
  681.  
  682.                 DYNAMICS  LORENZ.DD <return>
  683. **
  684.           A Hypothetical File LORENZ.DD with comments added might look like 
  685. the  following list (but would be longer).  This file is set up so that  it 
  686. can change parameters of the program so as to plot the x(t) variable of the 
  687. Lorenz  system  against  time.  You never personally have to  read  a  file 
  688. created by the DD command since the program will do it for you,  so in fact 
  689. you need not worry about how to interpret it.
  690.  
  691. L        Code for the Lorenz system 
  692. COORDS   Indicates we will change the coordinates to be plotted
  693. 3  0      Coordinate  3  is  time  t (horizontal  axis)  while  0  is  x(t)         
  694. (vertical)
  695. STEP     Set differential equation time step size at:
  696. 0.005
  697.  
  698. XS       Set horizontal coordinate to run from
  699. 0 60                 0 to 60.
  700. YS       Set vertical coordinate to run from
  701. -22 22              -22 to +22
  702. FILEEND  Take input from keyboard.
  703.  
  704.         When the program is plotting,  the interactive keys such as i c b 2 
  705. 3 4 q etc are operational even though 6666 has not yet been encountered.
  706. **
  707.           You  can  put a number of file names on the command  and  mix  in 
  708. commands. The commands must be preceded with a ':', so for example
  709.  
  710.                 DYNAMICS  LORENZ.PIC :CONNECT :RT <return>
  711.  
  712. The  file  of parameters is read in,  and then since the file name ends  in 
  713. ".PIC",  the program assumes there is a picture that should be read in  and 
  714. it  is  read  in.  The command "CONNECT" says that when the  trajectory  is 
  715. plotted,  the  dots should be connected with lines.  The command "T"  means 
  716. that the trajectory should be plotted.          
  717. *
  718.  
  719. *   UM     for  Unstable manifold (sub)menu
  720.  
  721.           The  unstable manifold of a periodic orbit can be computed  using 
  722. these  routines  IF  the periodic orbit has been  found  with  considerable 
  723. precision-- as could be obtained using the Newton method.  The point  y1[], 
  724. whose position is indicated by the small cross,  must be located very close 
  725. to the position of one of the points on the periodic orbit.  Therefore, the 
  726. small  cross  should be moved near the suspected position of  the  periodic 
  727. orbit.  Then  the Newton method (or better yet the quasi-Newton method) can 
  728. used  to refine the position of the orbit.  Command NP is used to  set  the 
  729. period. Use the Quasi-Newton or Newton method several times until the error 
  730. stops decreasing. The Newton method puts the small cross  (that is y1[]) at 
  731. the  position of the orbit and it uses the period set using 'NP'.  Even  if 
  732. you  enter  the position manually,  you must set 'period' using  'NP'.  The 
  733. default period is 1. The stable and unstable manifold routines also use the 
  734. quasi-newton routine to make sure the orbit has been accurately located. 
  735.  
  736.  
  737.  
  738. ** AB for drawing images of the segment from ya to yb
  739.           The  basic  tool in this section is the ability  to  compute  the 
  740. curvilinear  image  of a line segment.  This is provided in the routine  AB 
  741. which in its simplest form draws a straight line between ya and yb and  the 
  742. "image"  images  of  it.  When yb is chosen to the image  of  ya,  the  the 
  743. successive images link together into a single curve.
  744.  
  745.  
  746. ** UPIX for Unstable manifold pixel number. 
  747. The  program  plots  the unstable manifold on either the left side  or  the 
  748. right side.  It starts at y1 and plots moving outward away from y1.  Stable 
  749. and unstable manifold calculations are extremely accurate even for  chaotic 
  750. processes,  even for the parts of the manifold far from the periodic point. 
  751. However  to speed computation,  the computer plots 4 dots for every one  it 
  752. computes  (in the default case).  That is,  it plots accurately points that 
  753. are  about 4/1000 times the screen width  and then plots additional  points 
  754. to  connect  them.  Using this command,  this number can be  decreased  for 
  755. example  to 1 so that all points plotted are computed accurately  but  then 
  756. the program will run about four times slower.
  757.  
  758. ** UL for Unstable manifold Left 
  759. After setting y1[] at the periodic point,  and setting the period, entering 
  760. UL will cause the manifold to be drawn.
  761.           The  program first applies the quasi-Newton routine once or  more 
  762. times  to  guarantee that the point y1 is in fact sufficiently close  to  a 
  763. fixed point or periodic point.
  764.           Next the program chooses ya to be a point very close to y1 and it 
  765. chooses yb to be the 2 times NP th iterate of ya. Then it draws the 2 NP th 
  766. image  of  the ya,yb segment,  and then draws the 4 times NP th iterate  of 
  767. ya,yb, and so on.
  768.  
  769.  
  770. ** SL (and SR) for Stable manifold Left (Right)
  771. This  command  is like UL (or UR) except the  program  first  automatically 
  772. substitutes  the inverse of the system (see INVERT) if it is available.  If 
  773. it is not available,  the routine will not work. The stable manifold is the 
  774. unstable  manifold  of the inverse.  When the routine  is  terminated,  the 
  775. inverse is again invoked,  now yielding the original system. If the picture 
  776. is  saved  while  the routine is running,  it will save the  data  for  the 
  777. inverse.
  778.  
  779. ** RUL for Restore screen + Unstable manifold Left 
  780. This  command  restores the previous picture before beginning to  plot  the 
  781. manifold.  This might be used if you have already plotted the attractor  or 
  782. the right side of the unstable manifold.
  783.  
  784. ** UR is for Unstable Manifold Right side 
  785. This  command computes the half of the unstable manifold on the right  side 
  786. of the periodic orbit.
  787.  
  788. ** RUR for Restore+Unstable Right   
  789. This command is analogous to RUL. 
  790.  
  791. ** RSR and RSL are like SR and SL but Restore the picture first.
  792.  
  793. *
  794. *   W for When and Where
  795.      It  is essential for basin calculations and for straddle  calculations 
  796. (next  section)  to know whether a trajectory through a specified point  is 
  797. "diverging" or if it approaches one of the test points y2 through y7.  This 
  798. routine  is  implicitly called repeatedly by basin and  straddle  routines. 
  799. Practice  with this command will familiarize you with what  those  commands 
  800. are actually doing. 
  801.  
  802.      More  specifically,  this routine stops as soon as the trajectory that 
  803. starts at the small cross diverges (that is goes more than SD  screenwidths 
  804. or  heights  from  the screen) and it stops as soon as it  comes  within  a 
  805. distance  RA  of  any of the points y2 through y7 (ignoring  any  of  these 
  806. points  that  have not been set,  that is,  still has -9999 for  coordinate 
  807. values)  and if neither of those occurs before MC iterates,  it stops  then 
  808. anyway.  The  routine  then reports which of these events occurred and  how 
  809. long  it  took  for the event to occur.  If it stops only  because  it  has 
  810. reached MC iterates,  it stores the final point in storage vector  ye.  The 
  811. latter  is  useful because a system may have an attractor that you did  not 
  812. know about, and this allows you to access a point of the attractor. 
  813.  
  814. **    It typically takes much longer for the trajectory to be iterated  and 
  815. checked  MC  times  (default value is 2000 iterates) than to  discover  the 
  816. trajectory  has  approached some specified point.  Therefore  when  running 
  817. basin routines,  the y's should be set in such a manner that MC iterates is 
  818. only rarely if ever reached.  When the routine is used implicitly, it tests 
  819. other initial points and does not use the small cross.
  820.  
  821.  
  822. *   BM     for  Basins submenu     
  823. For  each  point  in a grid (for example  100X100)  the  basin  computation  
  824. determines  if the trajectory through that grid point goes near one of  the 
  825. test vectors 
  826.  
  827.         y2[], y3[], or y4[],   
  828.  
  829. before it goes near any of the test points for the second basin,
  830.  
  831.         y5[], y6[], or y7[].   
  832.  
  833. If  so it plots a large dot at the grid point and if not it leaves the spot 
  834. blank on the screen.  (What is a lighted dot on the screen will be a  black 
  835. dot  on paper.) The program repeats the procedure for all the grid  points. 
  836. If the trajectory diverges (as described in command "W"),  the point may or 
  837. may not be plotted.
  838.  
  839.     If  y2  has not been set (i.e.,  it still has its default values  -
  840. 9999.)  the point will be plotted.  If it has been set and  the  trajecotry 
  841. diverges, it will not be plotted).
  842.  
  843.  
  844. **     Practice  indicates that quite a few points will take 100 or  more 
  845. iterates  so you have to experiment on the maximum number  of  iterates.  I 
  846. sometimes  set  (the maximum number of) iterates to be a few  thousand.  If 
  847. there  are two attractors,  one of which can be infinity) this  is  OK.  If 
  848. there  are  two  bounded attractors,  set y5[] to be a point of  the  other 
  849. attractor.  Then  when  the trajectory comes close to  y2[]  or  y5[],  the 
  850. iterating will stop -- and a point will or will not be plotted depending on 
  851. whether the point it came near was y2 or y5 -- and then the next grid point 
  852. will  be tested.  This might average only 30 or so iterates even though the 
  853. maximum number of iterates is a few thousand.  Hence it is important to set 
  854. y5[] if there are two bounded attractors.
  855.  
  856.  
  857. **  MC    for  Max Checks 
  858. This command allows you to specify the maximum number of iterates that will 
  859. be attempted,  to see if an initial point's trajectory will approach one of 
  860. the points y2,...y7,  (depending on which of these have been set) or if  it 
  861. is going to infinity. Sometimes there are attracting points that you do not 
  862. know about.  If the trajectory is iterated MC times without approaching any 
  863. of  the test points in either attractor,  then the final point is stored in 
  864. storage vector ye[] for later investigation.  You may wish to include  such 
  865. points in one of the two sets of test points.
  866.  
  867. **  RA    for  Radius of Attraction
  868. A trajectory is declared to be going to an attractor if it gets within this 
  869. "radius of attraction" distance from any of the points y2,...,y7 (depending 
  870. on which of these have been set).
  871.  
  872. **  BL    for compute Basin, Low resolution 
  873. "Low resolution" means a 100 X 100 grid is used; blocks are plotted instead 
  874. of points so that the picture is not sparse.
  875.  
  876. **  RBL  for  Restore picture + compute Basin:Low res  
  877. "Low resolution" means a 100 X 100 grid is used;  R here means the previous 
  878. picture  computed  is restored to the screen before the basin  boundary  is 
  879. computed, so there will be an overlay of two pictures.
  880.  
  881. **   BM    for compute Basin:Med resolution      
  882. Medium resolution means a grid is used 320 wide by 200 high; Therefore this 
  883. is 6 times as many points and 6 times slower than low resolution;
  884.  
  885. **   RBM   for  Restore + compute Basin:Med res    
  886. R here means the previous picture computed is restored to the screen before 
  887. the  basin  boundary  is  computed,  so there will be  an  overlay  of  two 
  888. pictures.
  889.  
  890. **  BMH   for compute Basin Medium-High resolution 320 X 272 
  891. The  width 320 is 1/3 the epson printer's horizontal resolution and 272  is 
  892. 1/2 the number of vertical lines being used.
  893.  
  894. **   BH    for computing basin High resolution 960 X 544 
  895. These  high  resolution computations can be very time consuming,  about  52 
  896. times as long as low resolution.
  897.  
  898. **  RBH   for  Restore picture + compute Basin:High resolution
  899. R here means the previous picture computed is restored to the screen before 
  900. the  basin  boundary  is  computed,  so there will be  an  overlay  of  two 
  901. pictures.
  902. *
  903.  
  904. *    SM     Straddle trajectory submenu
  905.           Straddle  trajectories are trajectories essentially  trajectories 
  906. that lie in unstable sets, that is sets that are invariant but are unstable 
  907. in  the  sense that trajectories starting near (but not on)  the  set  will 
  908. diverge  from the set.  Basin boundaries are such sets.  Another example of 
  909. such  a set is a collection of points that do not go to an  attractor  even 
  910. though almost all points nearby do go to the same attractor. The first case 
  911. where  there  are  two attractors is especially simple  and  reliable.  The 
  912. second  case  is  much more difficult and our algorithms  are  still  being 
  913. refined.
  914.  
  915. **         Straddle  trajectories  are actually represented by  a  pair  of 
  916. points,  ya[]  and  yb[],  that  are very close to  each  other.  The  word 
  917. "straddle"  refers to the fact that ya and yb are on opposite sides of  the 
  918. set you want the trajectory to lie in.  The trajectories are initialized by 
  919. choosing  ya[]  and  yb[].  In  the case  of  basin  straddle  trajectories 
  920. (including "accessible basin straddle trajectories"),  you must specify the 
  921. vectors as described in the section "BASINS OF ATTRACTION".
  922.  
  923. **   SDIST     The target distance between points ya and yb
  924. All  straddle orbits use some procedure to refine the line segment  between 
  925. ya and yb,  that is to choose new points ya and/or yb that on the  interval 
  926. between the current ya and yb.  This procedure is used repeatedly until the 
  927. distance  between  them is less than a maximum allowable distance  "sdist", 
  928. specified  using command SDIST (Straddle DISTance).  When the  distance  is 
  929. below sdist, the point ya is plotted (which will produce the point as if yb 
  930. is  plotted if sdist is small) and the program applies the process once  to 
  931. both ya and yb,  that is the map is iterated once, if the process is a map, 
  932. or one differential equation step is taken if the process is a differential 
  933. equation. 
  934.  
  935. **   SST   for  Saddle Straddle Trajectory 
  936. This  routine  is  (sometimes)  capable of  finding  and  plotting  chaotic 
  937. trajectories that do not lie in a chaotic attractor.   The basic idea is to 
  938. look  for  a trajectory that does not "exit" from a specified  "restraining 
  939. region". This region can have holes in which case the trajectory could exit 
  940. the set by enterring one of the holes. The set is a box excluding the holes 
  941. centered at any of the points y2, ..., y7 that have been set. The radius of 
  942. those  holes  is set by command 'RA'.  For example,  if the  Henon  map  is 
  943. studied  in  parameter  ranges  that  are too  large  to  admit  a  chaotic 
  944. attractor,  then  we look for trajectories that take as long as possible to 
  945. leave a box that includes the screen.  The size of the box is determined by 
  946. "diameters" and the command to set that is SD.  To run the program for this 
  947. case,  set ya[] and yb[] so that the line segment between them cuts  across 
  948. the  region  where the transient attractor is suspected to  lie,  that  is, 
  949. there  exist  points on the line segment that remain in the region for  all 
  950. time.  For  example they may be chosen to be (-3,0) and (3,0).  The  points 
  951. y2[]  through y7[] should remain at the default values,  that is  not  set. 
  952. This  routine  has been developed and is being developed by a group at  the 
  953. University of Maryland.
  954.  
  955. **        The program has a subroutine that calculates the "exit time", the 
  956. time  it takes the trajectory through a point to leave the box (or  a  more 
  957. complicated set if some of the vectors y2 through y7 are set). This routine 
  958. is  the same one that is used to determine which basin a trajectory goes to 
  959. but here only the time it takes is used.
  960.  
  961. **        Given a pair of points ya[],yb[],  the refinement algorithm tries 
  962. to  find new pairs ya[],yb[] close together on the line segment between the 
  963. old pair such that some point between the new pair has an exit time  larger 
  964. than that of either of the new ya[] or yb[].
  965.  
  966. **  RSST  for  Restore picture + Saddle Straddle Trajectory
  967.  
  968. **  BST   for  Basin-Straddle Trajectory 
  969. This  command  is  for  finding a trajectory on  a  basin  boundary.  Basin 
  970. boundaries are highly unstable by nature.  A point slightly off a  boundary 
  971. will go to the attractor. 
  972.  
  973.         To  have  a  boundary,  there  must be two  basins.  One  basin  is 
  974. determined by 
  975.  
  976.         y2[], y3[], and y4[],   
  977.  
  978. as described in *B, and the other basin is described by
  979.  
  980.         y5[], y6[], and y7[].
  981.  
  982. The  points ya[] and yb[] must both be set;  that is they cannot  have  the 
  983. default values and they must be in different basins,  that is,  one must be 
  984. in  the y2-y3-y4 basin and the other must be in the y5-y6-y7  basin.  Since 
  985. they  are  in  different  basins,  we can say  they  "straddle"  the  basin 
  986. boundary.
  987.  
  988.           The  program  can  determine  which basin any  point  is  in.  It 
  989. determines  which basins ya and yb are in.  When these two points are  more 
  990. than a specified distance apart,  the program examines the midpoint between 
  991. them.  If  the  midpoint is in the same basin as ya,  it moves ya  to  that 
  992. midpoint,  while if the midpoint is in the basin of yb,  it moves yb to the 
  993. midpoint.  We still have two points,  one in each basin,  but now they  are 
  994. only  half  as  far apart.  This process is continued until ya and  yb  are 
  995. within some distance of each other, currently 10E-8.
  996.  
  997. **  RBST  for  Restore picture + Basin-Straddle Trajectory
  998. *
  999.  
  1000. *   STEP     for  Step size of the differential equation solver
  1001. The differential equation solver routine is a fixed step Runge-Kutta.
  1002.  
  1003. *    EULER  Euler differential equation solver 
  1004. This  command  makes the differential equation solver a single  step  Euler 
  1005. solver.
  1006.  
  1007. *    RUNGE  fourth order differential equation solver
  1008. This  command  makes the differential equationsolver a fourth  order  fixed 
  1009. step size Runge-Kutta solver. This is the default solver.
  1010.  
  1011. *    E  Error reports
  1012. This command  corresponds to interrupt 'E', resulting in the computation of 
  1013. the  single  step error the the differential equation  solver  makes;  this 
  1014. computation is made every fifth iterate. 
  1015.  
  1016. *    SPC   for  Steps Per Cycle
  1017. This  command is used instead of 'STEP' when the differential equation  has 
  1018. periodic  forcing;  if the period of the forcing is 2*pi/C4 (as is true  in 
  1019. several  cases)  it is most convenient to tell the program  the  number  of 
  1020. steps per period rather than the exact step size.
  1021.  
  1022. *    CONN   connect the consecutively plotted dots
  1023. This  command causes successive dots to be connected by straight lines.  It 
  1024. can also be used for maps,  though the results are strange-looking  graphs. 
  1025. This  feature turns itself off momentarily in a number of situations,  such 
  1026. as if one dot is outside the screen area,  since then it probably does  not 
  1027. make  sense  to  connect dots before and after  the  outlyer.  Also,  if  a 
  1028. coordinate of y[] is changed using the modulo calculations, for example, if 
  1029. the  angle variable in the pendulum goes beyond pi and is decreased using a 
  1030. mod  calcuation,  then the resulting dot is not connected to  the  previous 
  1031. dot.  If  you  are  plotting the time-2 pi return map,  you may  find  that 
  1032. between two consecutive points,  the program had to alter one of the  phase 
  1033. space  coordinates using a modulo calculation,  so those points will not be 
  1034. connected. 
  1035. **
  1036. Because  the calculations are carried out in rather low  precision  integer 
  1037. arithmetic (to speed calculations), the "straight line is rather imperfect. 
  1038.  
  1039. **    DIS    (= DISconnect) turns off the CONNECT feature.
  1040. *
  1041.  
  1042. * COLOR     'F7' 'F8' 'F9' 'Z'
  1043.           The  program  automatically  plots in color when  using  a  color 
  1044. screen  with  an  EGA board (and probably VGA,  though that  has  not  been 
  1045. tested),  and  you  can tell it to work in color using the older  and  more 
  1046. common CGA board by invoking the command "COLOR". Do not use these commands 
  1047. if  you  have  a Hercules compatible graphics board.  The  screen  has  the 
  1048. following resolution:
  1049.  
  1050.                               width (dots)   height    #colors
  1051.      EGA monocrome or color:  640            350       2 or 16
  1052.      CGA monocrome:           640            200       mono
  1053.      CGA color:               320            200       4
  1054.      
  1055.  
  1056. The  colors  are numbered with 0 being the background  color.  The  program 
  1057. starts with color = 1. Interrupt F7 decreases the number by 1 until you get 
  1058. to 0 and F8 increases it by 1. Interrupt F9 allows you to specify the color 
  1059. number.  F9  must  be followed by an integer and <ENTER> and color  is  set 
  1060. equal to that integer. 
  1061.  
  1062.           The  high  resolution copy in memory from which the program  both 
  1063. refreshes  the screen and prints is monocrome,  960 by 528.  Interrupt  'r'  
  1064. will  refresh  the screen in the active color.  Therefore if  you  want  to 
  1065. create a color picture,  you cannot do much refreshing of the screen. It is 
  1066. our  experience using a variety of color terminals that the best way to get 
  1067. a  high  quality permanent record of a color picture on the  screen  is  to 
  1068. photograph it.  We recommend color slides.  Color printers do not reproduce 
  1069. the  brilliant  colors of the screen.  If you want to create a  high  color 
  1070. picture  with the objective of photographing the screen,  you should aim at 
  1071. the minimal prompting level, and this is achieved by setting interrupt  '0' 
  1072. (recall  the  default level is 3).  You must first practice  creating  your 
  1073. picture with a higher prompting level if what you are doing is complicated, 
  1074. usually at 2 or 3.
  1075.  
  1076. ** PRNON   PRiNter ON-- text to printer instead of plotting screen
  1077.           This sends almost all text to the printer instead of the  screen, 
  1078. in  order  not  to destroy the picture on the screen.  No such  command  is 
  1079. needed  if  you  are using a monochrome screen  since  interrupt  'r'  will 
  1080. restore  the  screen,  but in color it restores all plotted pixels  to  the 
  1081. current active color. 
  1082.  
  1083. ** PRNOFF  reverses the effects of the command PRNON.
  1084.  
  1085. ** SETMODE returns the screen to the wakeup mode for the program
  1086.           If the command COLOR succeeds in getting you more color,  then it 
  1087. does so at the cost of lowering the screen resolution, and you can undo the 
  1088. COLOR command with this command.
  1089.           If you have a CGA card, you lose some resolution when plotting in 
  1090. color,  and  even the text is lower resolution,  so I have added a  command 
  1091. "SETMODE"  which returns the screen to monochrome.  The CGA color mode  has 
  1092. four  palettes of color,  and you can try the different palettes by hitting 
  1093. interrupt 'Z'. It has no effect with other graphics boards.
  1094.  
  1095. **Q
  1096. You can set the shades of each color. You have either 16 colors or 
  1097. after command COLOR you have 256.  After command Q or interrupt Q, 
  1098. you  are  asked to input the number of the color that you want  to 
  1099. set and the 3 shade levels (levels run from 0 to 63). Standard VGA 
  1100. codes for various colors.  The shade of each color can have values 
  1101. from 0 to 63.  When you are asked to enter the 4 integers, you can 
  1102. hit <Enter> to terminate the command. 
  1103.  
  1104.     If you enter a second 4 after being prompted,  the  number 
  1105. of  the color must be larger than the first.  If the color numbers 
  1106. were,  say, 4 and 12, then the program would also assign shades to 
  1107. 5  through  11,  linearly interpolating the shades.  If  you  then 
  1108. entered another 4, such as for color number 15, it would assign 15 
  1109. as requested and would assign 13 and 14 by linearly interpolating.
  1110. *
  1111. *BIFM
  1112.      You  can  make  bifurcation  diagrams  directly  on  your  Epson   (or 
  1113. compatible) printer.  The diagrams can be of arbitrary length,  one inch or 
  1114. 20 feet long.  A "bifurcation diagram" is a picture that shows what happens 
  1115. to the attractor as a parameter is varied.  At this time the parameter must 
  1116. be rho.  Using command COORDS,  you select which coordinate will be plotted 
  1117. horizontally  and which vertically on the screen.  For bifurcation diagrams 
  1118. on  the  printer,  only the coordinate you choose for  horizontal  plotting 
  1119. matters, and we will call that the X coordinate.
  1120.  
  1121.           The  current  status  of all relevant variables can  be  seen  by 
  1122. viewing the menu, which you call using command BIFM.
  1123.  
  1124. **BIF
  1125.           In  the  default  case,  command BIF instructs  the  program   to 
  1126. calculate  the X coordinates of the attractor for 400 different  values  of 
  1127. rho.  (The  number of line can be changed using command BIFL).  For each of 
  1128. these  rho  values,  the trajectory is first computed for  200  preiterates 
  1129. without plotting anything. Then for the next 700 iterates, The X coordinate 
  1130. is plotted,  or rather stored for printing.  When the program has  computed 
  1131. the  results for eight values of rho,  the results are sent to the printer, 
  1132. with  one  pass  of the printer head plotting the  eight  lines.  The  only 
  1133. command you must invoke prior to BIF is BIFS to set the scale of rho.
  1134.  
  1135. **BIFI
  1136.           The  default  is  for  the program  to  initialize  only  at  the 
  1137. beginning of the plot and then NOT reinitialize for each value of rho.  You 
  1138. can  instruct  the program to initialize for each rho using  command  BIFI, 
  1139. which is a toggle, so entering the command twice restores it to the default 
  1140. case.
  1141.  
  1142. **BIFL   sets  the  number  of horizontal lines,  that  is  the  number  of 
  1143. parameter values (about 720 per page).
  1144.  
  1145. **BIFS 
  1146.           This  command  is  needed  to set the scale of  rho  for  printed 
  1147. bifurcation diagrams.  Do not use YS which IS used for bifuraction diagrams 
  1148. plotted on the screen.  The default values are both -9999.  which tells the 
  1149. program to the fact that they have not been set.
  1150.  
  1151.  
  1152. **BIFP
  1153.           The  printer will print the value of rho on the left side of  the 
  1154. page unless command BIFP is called. It is a toggle. The value is printed to 
  1155. the  left side of the eight lines and is the rho value of the first of  the 
  1156. eight lines.
  1157.  
  1158. **BIF2   sets preiterates and iterates;  the first number is the number  of 
  1159. preiterates at each parameter value before plotting any points;  the second 
  1160. number is the number of iterates plotted for each parameter value.
  1161. *
  1162.